package cn.tedu.flower.manage.content.service;

import cn.tedu.flower.manage.content.pojo.entity.Aftermarket;
import cn.tedu.flower.manage.content.pojo.param.AftermarketAddNewParam;
import cn.tedu.flower.manage.content.pojo.param.AftermarketUpdateInfoParam;
import cn.tedu.flower.manage.content.pojo.vo.AftermarketListItemVO;
import cn.tedu.flower.manage.content.pojo.vo.AftermarketStandardVO;
import org.springframework.transaction.annotation.Transactional;

import java.util.Collection;
import java.util.List;

/**
 * 处理售后业务的接口
 *
 * @author java@tedu.cn
 * @version 1.0
 */
@Transactional
public interface IAftermarketService {

    /**
     * 添加类别
     *
     * @param aftermarketAddNewParam 新的售后数据
     */
    void addNew(AftermarketAddNewParam aftermarketAddNewParam);

    /**
     * 批量插入售后数据
     *
     * @param aftermarketList 售后列表
     * @return 受影响的行数
     */
    int insertBatch(List<Aftermarket> aftermarketList);

    /**
     * 删除售后
     *
     * @param id 尝试删除的售后的ID
     */
    void delete(Long id);

    /**
     * 根据若干个ID批量删除售后数据
     *
     * @param idList 若干个售后ID的数组
     * @return 受影响的行数
     */
    int deleteByIds(Collection<Long> idList);

    /**
     * 修改售后数据
     *
     * @param id                      被修改的售后数据的ID
     * @param aftermarketUpdateInfoParam 类别的新售后
     */
    void updateInfoById(Long id, AftermarketUpdateInfoParam aftermarketUpdateInfoParam);

    /**
     * 根据id查询售后数据详情
     *
     * @param id 类别id
     * @return 匹配的售后数据详情，如果没有匹配的数据，则返回null
     */
    AftermarketStandardVO getStandardById(Long id);

    /**
     * 查询售后数据列表
     *
     * @return 售后数据列表
     */
    List<AftermarketListItemVO> list();

}
